셀을 이용한 성적관리 프로그램 :: 자바예제모음[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

자바예제모음
[1]
등록일:2008-05-08 10:10:06 (0%)
작성자:
제목:셀을 이용한 성적관리 프로그램
import  java.awt.*;
import  java.awt.event.*;
import  javax.swing.*;
import  javax.swing.border.*;
import  javax.swing.event.*;


import  javax.swing.table.*;


class  Exam_02_Sub  extends  JFrame  implements  ActionListener{
      
      private  JRootPane  jrp;
      private  Container  con;
      private  JLabel  jlb  =  new  JLabel("성적처리  인원수  :",  JLabel.RIGHT);
      private  JLabel  jlb1  =  new  JLabel("명",  JLabel.LEFT);
      private  JTextField  tf  =  new  JTextField();
      private  JButton  jbt  =  new  JButton("만들기");
      private  JButton  jbt1  =  new  JButton("연산");
      private  JButton  jbt2  =  new  JButton("종료");
      private  DefaultTableModel  dtm;
      private  DefaultTableColumnModel  dtcm;
      private  DefaultListSelectionModel  dlsm;
      private  JTable  jt;
      private  JScrollPane  jsp;
      private  int  num  =  0;
      private  TableColumn  tc,  tc1,  tc2,  tc3,  tc4,  tc5,  tc6,  tc7;
      private  DefaultTableCellRenderer  dtcr,  dtcr1,  dtcr2,  dtcr3,  dtcr4,  dtcr5,  dtcr6,  dtcr7;
      private  JTextField  jtf,  jtf1,  jtf2,  jtf3,  jtf4,  jtf5,  jtf6,jtf7;
      private  DefaultCellEditor  dce,  dce1,  dce2,  dce3,  dce4,  dce5,  dce6,  dce7;
      private  JTableHeader  jth;
      public  Exam_02_Sub(){
          super("Test");
          this.init();
          this.start();
          this.setSize(300,200);
          Dimension  di  =  Toolkit.getDefaultToolkit().getScreenSize();
          Dimension  di1  =  this.getSize();
          this.setLocation((int)(di.getWidth()  /  2  -  di1.getWidth()  /  2),(int)(di.getHeight()  /  2  -  di1.getHeight()  /  2));
                this.setVisible(true);
      }
      public  void  init(){
          jrp  =  this.getRootPane();
          con  =  jrp.getContentPane();
          con.setLayout(new  BorderLayout());
          JPanel  jp  =  new  JPanel(new  BorderLayout());
          jp.add("West",  jlb);
          jp.add("Center",  tf);
          JPanel  jp1  =  new  JPanel(new  BorderLayout());
          jp1.add("West",  jlb1);
          jp1.add("Center",  jbt);
          jp1.add("East",  jp1);
          con.add("North",  jp);
          JPanel  jp2  =  new  JPanel(new  FlowLayout(FlowLayout.RIGHT));
          jp2.add(jbt1);  //연산
          jp2.add(jbt2);
          con.add("South",  jsp);
          //con.add("Center",  jsp);
      }
      public  void  start(){
          tf.addActionListener(this);
          jbt.addActionListener(this);
          jbt1.addActionListener(this);
          jbt2.addActionListener(this);
      }
      public  void  actionPerformed(ActionEvent  e){
          if(e.getSource()  ==  tf  ||  e.getSource()  ==  jbt){
            //테이블  구성하고..화면에  뿌려주겠다..
            try{
                  num  =  Integer.parseInt(tf.getText().trim());
            }catch(NumberFormatException  ee){
                tf.setText("");
                tf.requestFocus();
                return;
      }
      tf.setEnabled(false);
      jbt.setEnabled(false);
      dtm  =  new  DefaultTableModel(num,  8);
      dtcm  =  new  DefaultTableColumnModel();
      dlsm  =  new  DefaultListSelectionModel();
      jt  =  new  JTable(dtm,  dtcm,  dlsm);
      jsp  =  new  JScrollPane(jt);

      dtcr  =  new  DefaultTableCellRenderer();
      jtf  =  new  JTextField();
      jtf.setEditable(true);
      dce  =  new  DefaultCellEditor(jtf);
      tc  =  new  TableColumn(0,  120,  dtcr,  dce);
      tc.setHeaderValue("이름");
      dtcm.addColumn(tc);
      dtcr1  =  new  DefaultTableCellRenderer();
      jtf1  =  new  JTextField();
      jtf1.setEditable(true);
      dce1  =  new  DefaultCellEditor(jtf1);
      tc1  =  new  TableColumn(1,  75,  dtcr1,  dce1);
      tc1.setHeaderValue("국어");
      dtcm.addColumn(tc1);
      dtcr2  =  new  DefaultTableCellRenderer();
      jtf2  =  new  JTextField();
      jtf2.setEditable(true);
      dce2  =  new  DefaultCellEditor(jtf2);
      tc2  =  new  TableColumn(2,  75,  dtcr2,  dce2);
      tc2.setHeaderValue("영어");
      dtcm.addColumn(tc2);
      dtcr3=new  DefaultTableCellRenderer();
      jtf3  =  new  JTextField();
      jtf3.setEditable(true);
      dce3=new  DefaultCellEditor(jtf3);
      tc3  =  new  TableColumn(3,  75,  dtcr3,  dce3);
      tc3.setHeaderValue("수학");
      dtcm.addColumn(tc3);
      dtcr4=  new  DefaultTableCellRenderer();
      jtf4  =  new  JTextField();
      jtf4.setEditable(false);
      dce4  =  new  DefaultCellEditor(jtf4);
      tc4  =  new  TableColumn(4,  75,  dtcr4,  dce4);
      tc4.setHeaderValue("총점");
      dtcm.addColumn(tc4);
      dtcr5  =  new  DefaultTableCellRenderer();
      jtf5  =  new  JTextField();
      jtf5.setEditable(false);
      dce5  =  new  DefaultCellEditor(jtf5);
      tc5  =  new  TableColumn(5,  100,  dtcr5,  dce5);
      tc5.setHeaderValue("평균");
      dtcm.addColumn(tc5);
      dtcr6  =  new  DefaultTableCellRenderer();
      jtf6  =  new  JTextField();
      jtf6.setEditable(false);
      dce6  =  new  DefaultCellEditor(jtf6);
      tc6  =  new  TableColumn(6,  50,  dtcr6,  dce6);
      tc6.setHeaderValue("학점");
      dtcm.addColumn(tc6);
      dtcr7  =  new  DefaultTableCellRenderer();
      jtf7  =  new  JTextField();
      jtf7.setEditable(false);
      dce7  =  new  DefaultCellEditor(jtf7);
      tc7  =  new  TableColumn(7,  50,  dtcr7,  dce7);
      tc7.setHeaderValue("석차");
      dtcm.addColumn(tc7);
      jth  =  new  JTableHeader(dtcm);
      jth.setReorderingAllowed(false);
      jt.setTableHeader(jth);
      con.add("Center",  jsp);
      con.validate();
      this.pack();
      Dimension  di  =  Toolkit.getDefaultToolkit().getScreenSize();
      Dimension  di1  =  this.getSize();
      this.setLocation((int)(di.getWidth()  /  2  -  di1.getWidth()  /  2),  (int)(di.getHeight()  /  2  -  di1.getHeight()  /  2));
    }
    else  if(e.getSource()  ==  jbt1){
                    //성적을  처리해서..  결과를  뿌려주겠다..
          jt.clearSelection();
          int  []  []  imsi  =  new  int[num][2];
          for(int  i  =  0;  i<num;  i++){
                int  tot  =  Integer.parseInt((String)dtm.getValueAt(i,  1))  +
                        Integer.parseInt((String)dtm.getValueAt(i,  2))  +
                                    Integer.parseInt((String)dtm.getValueAt(i,  3));
                float  avg  =  tot  /3.0f;
                char  ch  =  0;
                switch((int)(avg  /  10)){
                case  10:
                case  9:  ch  =  'A';  break;
                case  8:  ch  =  'B';  break;
                case  7:  ch  =  'C';  break;
                case  6:  ch  =  'D';  break;
                default:  ch  =  'F';
                }
                dtm.setValueAt(String.valueOf(tot),  i,  4);
                dtm.setValueAt(String.valueOf(avg),  i,  5);
                dtm.setValueAt(ch  +  "",  i,  6);
                imsi[i]  [0]  =  tot;
                imsi[i]  [1]  =  1;
          }
          for(int  i  =  0;  i  <  num;  i++){
                for(int  j=0;  j<num;j++){
                    if(imsi  [i]  [0]  <  imsi  [j]  [0]){
                          imsi  [i]  [1]++;
                    }
                }
          }
          for(int  i  =  0;  i<  num;  i++){
                dtm.setValueAt(String.valueOf(imsi[i]  [1]),  i,  7);
          }
    }
    else  if(e.getSource()  ==  jbt2){
            System.exit(0);
    }
  }
}
public  class  Exam07_14{
    public  static  void  main(String[]  ar){
        Exam_02_Sub  es  =  new  Exam_02_Sub();
    }
}
[본문링크] 셀을 이용한 성적관리 프로그램
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=7530
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.